| Filename | (eval 33)[/usr/local/share/perl/5.18.2/Sub/Quote.pm:3] |
| Statements | Executed 76 statements in 985µs |
| Eval Invoked At | /usr/local/share/perl/5.18.2/Sub/Quote.pm line 3 |
| Sibling evals | 1, 2 |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 3 | 3 | 2 | 171µs | 11.0ms | String::Markov::new |
| 1 | 1 | 1 | 39µs | 39µs | Method::Generate::Constructor::BEGIN@22 |
| 1 | 1 | 1 | 25µs | 42µs | Sub::Quote::BEGIN@16 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | { | ||||
| 2 | 2 | 2µs | my $default_for_normalize = ${$_[1]->{"\$default_for_normalize"}}; | ||
| 3 | 1 | 400ns | my $default_for_do_5fchomp = ${$_[1]->{"\$default_for_do_5fchomp"}}; | ||
| 4 | 1 | 400ns | my $isa_check_for_transition_5fcount = ${$_[1]->{"\$isa_check_for_transition_5fcount"}}; | ||
| 5 | 1 | 400ns | my $isa_check_for_order = ${$_[1]->{"\$isa_check_for_order"}}; | ||
| 6 | 1 | 600ns | my $_QUOTED = ${$_[1]->{"\$_QUOTED"}}; | ||
| 7 | 1 | 500ns | my $default_for_split_5fsep = ${$_[1]->{"\$default_for_split_5fsep"}}; | ||
| 8 | 1 | 400ns | my $isa_check_for_row_5fsum = ${$_[1]->{"\$isa_check_for_row_5fsum"}}; | ||
| 9 | 1 | 300ns | my $default_for_order = ${$_[1]->{"\$default_for_order"}}; | ||
| 10 | 1 | 300ns | my $default_for_transition_5fcount = ${$_[1]->{"\$default_for_transition_5fcount"}}; | ||
| 11 | 1 | 400ns | my $default_for_row_5fsum = ${$_[1]->{"\$default_for_row_5fsum"}}; | ||
| 12 | 1 | 400ns | my $_UNQUOTED = ${$_[1]->{"\$_UNQUOTED"}}; | ||
| 13 | 1 | 400ns | my $default_for_stable = ${$_[1]->{"\$default_for_stable"}}; | ||
| 14 | 1 | 400ns | my $default_for_null = ${$_[1]->{"\$default_for_null"}}; | ||
| 15 | 1 | 400ns | my $default_for_join_5fsep = ${$_[1]->{"\$default_for_join_5fsep"}}; | ||
| 16 | 2 | 97µs | 2 | 60µs | # spent 42µs (25+18) within Sub::Quote::BEGIN@16 which was called:
# once (25µs+18µs) by Sub::Quote::_clean_eval at line 16 # spent 42µs making 1 call to Sub::Quote::BEGIN@16
# spent 18µs making 1 call to warnings::unimport |
| 17 | package String::Markov; | ||||
| 18 | # spent 11.0ms (171µs+10.8) within String::Markov::new which was called 3 times, avg 3.67ms/call:
# once (18µs+10.7ms) by main::RUNTIME at line 17 of index.cgi
# once (82µs+93µs) by main::RUNTIME at line 38 of index.cgi
# once (72µs+76µs) by main::RUNTIME at line 67 of Sub/Defer.pm | ||||
| 19 | ($_QUOTED,$_UNQUOTED) if 0; | ||||
| 20 | # BEGIN quote_sub PRELUDE | ||||
| 21 | package Method::Generate::Constructor; | ||||
| 22 | # spent 39µs within Method::Generate::Constructor::BEGIN@22 which was called:
# once (39µs+0s) by Sub::Quote::_clean_eval at line 27 | ||||
| 23 | 1 | 2µs | $^H = "2018"; | ||
| 24 | 1 | 500ns | ${^WARNING_BITS} = "UUUUUUUUUUUUUU\025"; | ||
| 25 | 1 | 39µs | %^H = ( | ||
| 26 | ); | ||||
| 27 | 1 | 686µs | 1 | 39µs | } # spent 39µs making 1 call to Method::Generate::Constructor::BEGIN@22 |
| 28 | # END quote_sub PRELUDE | ||||
| 29 | 4 | 5µs | my $class = ref($_[0]) ? ref(shift) : shift; if ($class ne "String::Markov") { | ||
| 30 | if ($Moo::MAKERS{$class}) { | ||||
| 31 | if ($Moo::MAKERS{$class}{constructor}) { | ||||
| 32 | package String::Markov; | ||||
| 33 | return $class->SUPER::new(@_); | ||||
| 34 | } | ||||
| 35 | Moo->_constructor_maker_for($class); | ||||
| 36 | return $class->new(@_); | ||||
| 37 | } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) { | ||||
| 38 | return $meta->new_object( | ||||
| 39 | $class->can("BUILDARGS") ? $class->BUILDARGS(@_) | ||||
| 40 | : $class->Moo::Object::BUILDARGS(@_) | ||||
| 41 | ); | ||||
| 42 | } | ||||
| 43 | } | ||||
| 44 | 2 | 20µs | 2 | 104µs | my $args = $class->BUILDARGS(@_); # spent 104µs making 2 calls to String::Markov::BUILDARGS, avg 52µs/call |
| 45 | 2 | 2µs | die "BUILDARGS did not return a hashref" unless ref($args) eq 'HASH'; | ||
| 46 | 2 | 3µs | my $new = bless({}, $class);; | ||
| 47 | ($new->{"do_chomp"} = ( | ||||
| 48 | exists $args->{"do_chomp"} | ||||
| 49 | ? $args->{"do_chomp"} | ||||
| 50 | : $default_for_do_5fchomp->($new))),($new->{"join_sep"} = ( | ||||
| 51 | exists $args->{"join_sep"} | ||||
| 52 | ? $args->{"join_sep"} | ||||
| 53 | : $default_for_join_5fsep->($new))),($new->{"normalize"} = ( | ||||
| 54 | exists $args->{"normalize"} | ||||
| 55 | ? $args->{"normalize"} | ||||
| 56 | : $default_for_normalize->($new))),($new->{"null"} = ( | ||||
| 57 | exists $args->{"null"} | ||||
| 58 | ? $args->{"null"} | ||||
| 59 | 2 | 2µs | : $default_for_null->($new))),($new->{"order"} = scalar do { my $value = ( | ||
| 60 | exists $args->{"order"} | ||||
| 61 | ? $args->{"order"} | ||||
| 62 | : $default_for_order->($new)); | ||||
| 63 | 2 | 2µs | (do { | ||
| 64 | 2 | 6µs | local $Method::Generate::Accessor::CurrentAttribute = { | ||
| 65 | init_arg => "order", | ||||
| 66 | name => "order", | ||||
| 67 | step => "isa check", | ||||
| 68 | }; | ||||
| 69 | 2 | 2µs | (my $_error), (my $_old_error = $@); | ||
| 70 | 2 | 2µs | (eval { | ||
| 71 | 2 | 6µs | 2 | 23µs | ($@ = $_old_error), # spent 23µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:20], avg 12µs/call |
| 72 | ($isa_check_for_order->($value)), | ||||
| 73 | 1 | ||||
| 74 | } or | ||||
| 75 | $_error = ref $@ ? $@ : "isa check for \"order\" failed: ".$@); | ||||
| 76 | 2 | 4µs | ($@ = $_old_error), | ||
| 77 | (defined $_error and die $_error); | ||||
| 78 | } | ||||
| 79 | ), | ||||
| 80 | $value | ||||
| 81 | } | ||||
| 82 | 2 | 5µs | 2 | 4µs | ),($new->{"row_sum"} = scalar do { my $value = ( # spent 4µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:30], avg 2µs/call |
| 83 | exists $args->{"row_sum"} | ||||
| 84 | ? $args->{"row_sum"} | ||||
| 85 | : $default_for_row_5fsum->($new)); | ||||
| 86 | 2 | 2µs | (do { | ||
| 87 | 2 | 4µs | local $Method::Generate::Accessor::CurrentAttribute = { | ||
| 88 | init_arg => "row_sum", | ||||
| 89 | name => "row_sum", | ||||
| 90 | step => "isa check", | ||||
| 91 | }; | ||||
| 92 | 2 | 1µs | (my $_error), (my $_old_error = $@); | ||
| 93 | 2 | 1µs | (eval { | ||
| 94 | 2 | 5µs | 2 | 5µs | ($@ = $_old_error), # spent 5µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:29], avg 3µs/call |
| 95 | ($isa_check_for_row_5fsum->($value)), | ||||
| 96 | 1 | ||||
| 97 | } or | ||||
| 98 | $_error = ref $@ ? $@ : "isa check for \"row_sum\" failed: ".$@); | ||||
| 99 | 2 | 3µs | ($@ = $_old_error), | ||
| 100 | (defined $_error and die $_error); | ||||
| 101 | } | ||||
| 102 | ), | ||||
| 103 | $value | ||||
| 104 | } | ||||
| 105 | ),($new->{"split_sep"} = ( | ||||
| 106 | exists $args->{"split_sep"} | ||||
| 107 | ? $args->{"split_sep"} | ||||
| 108 | : $default_for_split_5fsep->($new))),($new->{"stable"} = ( | ||||
| 109 | exists $args->{"stable"} | ||||
| 110 | ? $args->{"stable"} | ||||
| 111 | 4 | 55µs | 10 | 30µs | : $default_for_stable->($new))),($new->{"transition_count"} = scalar do { my $value = ( # spent 14µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:14], avg 7µs/call
# spent 5µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:15], avg 3µs/call
# spent 5µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:16], avg 2µs/call
# spent 3µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:17], avg 2µs/call
# spent 2µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:30], avg 1µs/call |
| 112 | exists $args->{"transition_count"} | ||||
| 113 | ? $args->{"transition_count"} | ||||
| 114 | : $default_for_transition_5fcount->($new)); | ||||
| 115 | 2 | 1µs | (do { | ||
| 116 | 2 | 4µs | local $Method::Generate::Accessor::CurrentAttribute = { | ||
| 117 | init_arg => "transition_count", | ||||
| 118 | name => "transition_count", | ||||
| 119 | step => "isa check", | ||||
| 120 | }; | ||||
| 121 | 2 | 1µs | (my $_error), (my $_old_error = $@); | ||
| 122 | 2 | 1µs | (eval { | ||
| 123 | 2 | 2µs | 2 | 2µs | ($@ = $_old_error), # spent 2µs making 2 calls to String::Markov::__ANON__[String/Markov.pm:29], avg 1µs/call |
| 124 | ($isa_check_for_transition_5fcount->($value)), | ||||
| 125 | 1 | ||||
| 126 | } or | ||||
| 127 | $_error = ref $@ ? $@ : "isa check for \"transition_count\" failed: ".$@); | ||||
| 128 | 2 | 2µs | ($@ = $_old_error), | ||
| 129 | (defined $_error and die $_error); | ||||
| 130 | } | ||||
| 131 | ), | ||||
| 132 | $value | ||||
| 133 | } | ||||
| 134 | ), return $new; | ||||
| 135 | } | ||||
| 136 | 1 | 2µs | $$_UNQUOTED = \&new | ||
| 137 | } | ||||
| 138 | 1 | 10µs | 1; | ||
| 139 | |||||
| 140 | ; |